<!doctype html>
<body>
  <script src=/resources/testharness.js></script>
  <script src=/resources/testharnessreport.js></script>
  <script src=/common/utils.js></script>
  <script src=/fenced-frame/resources/utils.js></script>
  <script src=/shared-storage/resources/util.js></script>
  <script src=/shared-storage/resources/util.sub.js></script>
  <script>
    promise_test(async t => {
      const outerKey = token();
      let url = generateURL(
        '/shared-storage/resources/'
          + 'shared-storage-writable-iframe-in-fenced-inner.https.sub.html',
        [outerKey]);
      url = appendExpectedKeyAndValue(url, 'a', 'b');

      let fencedFrameConfig = await runSelectRawURL(url, true);
      assert_true(validateSelectURLResult(fencedFrameConfig, true));

      attachFencedFrame(fencedFrameConfig, 'opaque-ads');
      const result = await nextValueFromServer(outerKey);
      assert_equals(result, "writable_iframe_in_fenced_inner_loaded");
    }, 'test <iframe sharedstoragewritable src=[url]></iframe> via JS inside'
       + ' a fenced frame');
  </script>
</body>
